Portable Articulated Arm Coordinate Measuring Machine Having Integrated Software Controls

ABSTRACT

A portable articulated arm coordinate measurement machine (AACMM) having integrated software controls. The AACMM includes a manually positionable articulated arm portion having opposed first and second ends, the arm portion including a plurality of connected arm segments, each of the arm segments including at least one position transducer for producing position signals. The AACMM also includes a measurement device attached to the first end of the AACMM, and an electronic circuit having a self-contained operating environment for the AACMM. The self-contained operating environment includes a user interface application, an application programming interface, and logic. The logic is configures for performing data collection including receiving position signals from the transducers, calculating data corresponding to a position of the measurement device, the calculating responsive to the position signals, and outputting the data to at least one of the user interface application and the application programming interface.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims the benefit of provisional applicationNo. 61/296,555 filed Jan. 20, 2010, the content of which is herebyincorporated by reference in its entirety.

BACKGROUND

The present disclosure relates to a coordinate measuring machine, andmore particularly to a portable articulated arm coordinate measuringmachine having integrated software controls.

Portable articulated arm coordinate measuring machines (AACMMs) havefound widespread use in the manufacturing or production of parts wherethere is a need to rapidly and accurately verify the dimensions of thepart during various stages of the manufacturing or production (e.g.,machining) of the part. Portable AACMMs represent a vast improvementover known stationary or fixed, cost-intensive and relatively difficultto use measurement installations, particularly in the amount of time ittakes to perform dimensional measurements of relatively complex parts.Typically, a user of a portable AACMM simply guides a probe along thesurface of the part or object to be measured. The measurement data arethen recorded and provided to the user. In some cases, the data areprovided to the user in visual form, for example, three-dimensional(3-D) form on a computer screen. In other cases, the data are providedto the user in numeric form, for example when measuring the diameter ofa hole, the text “Diameter=1.0034” is displayed on a computer screen.

An example of a prior art portable articulated arm CMM is disclosed incommonly assigned U.S. Pat. No. 5,402,582 ('582), which is incorporatedherein by reference in its entirety. The '582 patent discloses a 3-Dmeasuring system comprised of a manually-operated articulated arm CMMhaving a support base on one end and a measurement probe at the otherend. Commonly assigned U.S. Pat. No. 5,611,147 ('147), which isincorporated herein by reference in its entirety, discloses a similararticulated arm CMM. In the '147 patent, the articulated arm CMMincludes a number of features including an additional rotational axis atthe probe end, thereby providing for an arm with either a two-two-two ora two-two-three axis configuration (the latter case being a seven axisarm).

Contemporary portable AACMMs require a connection to an externalcomputer, such as a laptop, to calculate positional data from the rawmeasurement data collected by the AACMM. In addition, the externalcomputer also provides a user interface application to allow theoperator to give instructions to the AACMM. Thus, an AACMM is requiredto have a driver that supports communication with a variety of operatingsystems (and operating system levels). In addition, troubleshooting isoften difficult because other applications, including those not relatedto portable AACMM functions, may also be executing on the externalcomputer and impacting portable AACMM functions. Though current AACMMsare suitable for their intended purpose, it would be desirable to reducethe amount of variability introduced by the use of an external computerin conjunction with the portable AACMM to perform measurement functions.

SUMMARY OF THE INVENTION

An embodiment is a portable articulated arm coordinate measurementmachine (AACMM) that includes a manually positionable articulated armportion having opposed first and second ends, the arm portion includinga plurality of connected arm segments, each of the arm segmentsincluding at least one position transducer for producing positionsignals. The AACMM also includes a measurement device attached to thefirst end of the AACMM, and an electronic circuit having aself-contained operating environment for the AACMM. The self-containedoperating environment includes a user interface application, anapplication programming interface, and logic. The logic is configuredfor performing data collection including receiving position signals fromthe transducers, calculating data corresponding to a position of themeasurement device, the calculating responsive to the position signals,and outputting the data to at least one of the user interfaceapplication and the application programming interface.

Another embodiment is a method of implementing a portable AACMM. Themethod includes providing a self-contained operating environment for theportable AACMM. The portable AACMM includes a manually positionablearticulated arm portion having opposed first and second ends, the armportion including a plurality of connected arm segments, each armsegment including at least one position transducer for producingposition signals. The AACMM also includes a measurement device attachedto the first end of the portable AACMM, and an electronic circuit havingthe self-contained operating environment. The electronic circuitincludes a user interface application, an application programminginterface, and logic. The logic is configured for performing datacollection including receiving position signals from the transducers,calculating data corresponding to a position of the measurement device,the calculating responsive to the position signals, and outputting thedata to at least one of the user interface application and theapplication programming interface.

A further embodiment is a computer program product for implementing aportable AACMM. The computer program product includes a storage mediumhaving computer-readable program code embodied thereon, which whenexecuted by an electronic circuit on the AACMM causes the computer toimplement a method. The method includes providing a self-containedoperating environment for the portable AACMM. The portable AACMMincludes a manually positionable articulated arm portion having opposedfirst and second ends, the arm portion including a plurality ofconnected arm segments, each arm segment including at least one positiontransducer for producing position signals. The portable AACMM alsoincludes a measurement device attached to the first end of the portableAACMM, and the electronic circuit. The electronic circuit has aself-contained operating environment and includes a user interfaceapplication, an application programming interface, and logic. The logicis configured for performing data collection including receivingposition signals from the transducers, calculating data corresponding toa position of the measurement device, the calculating responsive to theposition signals, and outputting the data to at least one of the userinterface application and the application programming interface.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the drawings, exemplary embodiments are shown whichshould not be construed to be limiting regarding the entire scope of thedisclosure, and wherein the elements are numbered alike in severalFIGURES:

FIG. 1, including FIGS. 1A and 1B, are perspective views of a portablearticulated arm coordinate measuring machine (AACMM) having embodimentsof various aspects of the present invention therewithin;

FIG. 2, including FIGS. 2A-2D taken together, is a block diagram ofelectronics utilized as part of the AACMM of FIG. 1 in accordance withan embodiment;

FIG. 3, including FIGS. 3A and 3B taken together, is a block diagramdescribing detailed features of the electronic data processing system ofFIG. 2 in accordance with an embodiment;

FIG. 4 is a flow diagram of a process for implementing a self-containedoperating environment on the AACMM in accordance with an embodiment;

FIG. 5 is a user interface screen presented to an operator when theAACMM is powered on in accordance with an embodiment;

FIG. 6 is a user interface screen presented to an operator whenperforming part setup in accordance with an embodiment;

FIG. 7 is a user interface screen presented to an operator whenperforming measurement in accordance with an embodiment;

FIG. 8 is a user interface screen presented to an operator whendisplaying position data;

FIG. 9 is a user interface screen presented to an operator whenreviewing features in accordance with an embodiment;

FIG. 10 is a user interface screen presented to an operator whenmanaging files on the AACMM in accordance with an embodiment;

FIG. 11 is a user interface screen presented to an operator whenmanaging settings on the AACMM in accordance with an embodiment;

FIG. 12 is a is a flow diagram of a process for verifying that requestedupdates to the AACMM are authorized in accordance with an embodiment;

FIG. 13 is a user interface screen presented to an operator whenperforming diagnostics in accordance with an embodiment; and

FIG. 14 is a user interface screen presented to an operator whenperforming calibration in accordance with an embodiment.

DETAILED DESCRIPTION

An articulated arm coordinate measuring machine (AACMM) having aself-contained operating environment is provided in accordance withexemplary embodiments. As used herein, the term “self-containedoperating environment” refers to the AACMM being portable, with all ofthe elements required to perform measurement located on the portableAACMM (e.g., within a housing of the AACMM). This is contrasted with anAACMM that requires a laptop, or other processing device, to performsome functions (e.g., calculating positional data from raw measurementdata). The self-contained AACMM may be powered by a battery and/orplugged in to a power source (e.g., 120 VAC). In an embodiment, theself-contained AACMM operates in a “kiosk mode” where the software onthe AACMM is designed to perform a set of supported functions that arepresented to the operator in a user interface screen when the AACMM ispowered on. The “kiosk mode” provides a dedicated and controlledenvironment where the operator does not need to be concerned with theoperating environment (e.g., operating system, software versions, etc.)of the AACMM. Further, the operator does not need to be concerned withthe nuances of bringing up an operating system and loading particularsoftware. In an embodiment, a user interface screen is presented to theoperator when the AACMM is powered on to guide the operator throughusing the functions provided by the AACMM.

FIGS. 1A and 1B illustrate, in perspective, a portable articulated armcoordinate measuring machine (AACMM) 100 according to variousembodiments of the present invention, an articulated arm being one typeof coordinate measuring machine. As shown in FIGS. 1A and 1B, theexemplary AACMM 100 may comprise a six or seven axis articulatedmeasurement device having a measurement probe housing 102 coupled to anarm portion 104 of the AACMM 100 at one end. The arm portion 104comprises a first arm segment 106 coupled to a second arm segment 108 bya first grouping of bearing cartridges 110 (e.g., two bearingcartridges). A second grouping of bearing cartridges 112 (e.g., twobearing cartridges) couples the second arm segment 108 to themeasurement probe housing 102. A third grouping of bearing cartridges114 (e.g., three bearing cartridges) couples the first arm segment 106to a base 116 located at the other end of the arm portion 104 of theAACMM 100. Each grouping of bearing cartridges 110, 112, 114 providesfor multiple axes of articulated movement. Also, the measurement probehousing 102 may comprise the shaft of the seventh axis portion of theAACMM 100 (e.g., a cartridge containing an encoder system thatdetermines movement of the measurement device, for example a probe 118and/or a peripheral device, in the seventh axis of the AACMM 100). Inuse of the AACMM 100, the base 116 is typically affixed to a worksurface.

Each bearing cartridge within each bearing cartridge grouping 110, 112,114 typically contains an encoder system (e.g., an optical encodersystem). The encoder system (i.e., transducer) provides an indication ofthe position of the respective arm segments 106, 108 and correspondingbearing cartridge groupings 110, 112, 114, that all together provide anindication of the position of the probe 118 with respect to the base 116(and, thus, the position of the object being measured by the AACMM 100in a certain frame of reference—for example a local or global frame ofreference). The arm segments 106, 108 may be made from a suitably rigidmaterial such as but not limited to a carbon composite material forexample. A portable AACMM 100 with six or seven axes of articulatedmovement (i.e., degrees of freedom) provides advantages in allowing theoperator to position the probe 118 in a desired location within a 360°area about the base 116 while providing an arm portion 104 that may beeasily handled by the operator. However, it should be appreciated thatthe illustration of an arm portion 104 having two arm segments 106, 108is for exemplary purposes, and the claimed invention should not be solimited. An AACMM 100 may have any number of arm segments coupledtogether by bearing cartridges (and, thus, more or less than six orseven axes of articulated movement or degrees of freedom).

The probe 118 is detachably mounted to the measurement probe housing102, which is connected to bearing cartridge grouping 112. A handle 126is removable with respect to the measurement probe housing 102 by wayof, for example, a quick-connect interface. The handle 126 may bereplaced with another device (e.g., a laser line probe, a bar codereader), thereby providing advantages in allowing the operator to usedifferent measurement devices with the same AACMM 100. In exemplaryembodiments, the probe housing 102 houses a removable probe 118, whichis a contacting measurement device and may have different tips 118 thatphysically contact the object to be measured, including, but not limitedto: ball, touch-sensitive, curved and extension type probes. In otherembodiments, the measurement is performed, for example, by anon-contacting device such as a laser line probe (LLP). In anembodiment, the handle 126 is replaced with the LLP using thequick-connect interface. Other types of measurement devices may replacethe removable handle 126 to provide additional functionality. Examplesof such measurement devices include, but are not limited to, one or moreillumination lights, a temperature sensor, a thermal scanner, a bar codescanner, a projector, a paint sprayer, a camera, or the like.

As shown in FIGS. 1A and 1B, the AACMM 100 includes the removable handle126 that provides advantages in allowing accessories or functionality tobe changed without removing the measurement probe housing 102 from thebearing cartridge grouping 112. As discussed in more detail below withrespect to FIG. 2, the removable handle 126 may also include anelectrical connector that allows electrical power and data to beexchanged with the handle 126 and the corresponding electronics locatedin the probe end.

In various embodiments, each grouping of bearing cartridges 110, 112,114 allows the arm portion 104 of the AACMM 100 to move about multipleaxes of rotation. As mentioned, each bearing cartridge grouping 110,112, 114 includes corresponding encoder systems, such as optical angularencoders for example, that are each arranged coaxially with thecorresponding axis of rotation of, e.g., the arm segments 106, 108. Theoptical encoder system detects rotational (swivel) or transverse (hinge)movement of, e.g., each one of the arm segments 106, 108 about thecorresponding axis and transmits a signal to an electronic dataprocessing system within the AACMM 100 as described in more detailherein below. Each individual raw encoder count is sent separately tothe electronic data processing system as a signal where it is furtherprocessed into measurement data. No position calculator separate fromthe AACMM 100 itself (e.g., a serial box) is required, as disclosed incommonly assigned U.S. Pat. No. 5,402,582 ('582).

The base 116 may include an attachment device or mounting device 120.The mounting device 120 allows the AACMM 100 to be removably mounted toa desired location, such as an inspection table, a machining center, awall or the floor for example. In one embodiment, the base 116 includesa handle portion 122 that provides a convenient location for theoperator to hold the base 116 as the AACMM 100 is being moved. In oneembodiment, the base 116 further includes a movable cover portion 124that folds down to reveal a user interface, such as a display screen.

In accordance with an embodiment, the base 116 of the portable AACMM 100contains or houses an electronic data processing system that includestwo primary components: a base processing system that processes the datafrom the various encoder systems within the AACMM 100 as well as datarepresenting other arm parameters to support three-dimensional (3-D)positional calculations; and a user interface processing system thatincludes an on-board operating system, a touch screen display, andresident application software that allows for relatively completemetrology functions to be implemented within the AACMM 100 without theneed for connection to an external computer.

The electronic data processing system in the base 116 may communicatewith the encoder systems, sensors, and other peripheral hardware locatedaway from the base 116 (e.g., a LLP that can be mounted to the removablehandle 126 on the AACMM 100). The electronics that support theseperipheral hardware devices or features may be located in each of thebearing cartridge groupings 110, 112, 114 located within the portableAACMM 100.

FIG. 2 is a block diagram of electronics utilized in an AACMM 100 inaccordance with an embodiment. The embodiment shown in FIG. 2 includesan electronic data processing system 210 including a base processorboard 204 for implementing the base processing system, a user interfaceboard 202, a base power board 206 for providing power, a Bluetoothmodule 232, and a base tilt board 208. The user interface board 202includes a computer processor for executing user interface applicationsoftware to perform user interface, display, and other functionsdescribed herein.

As shown in FIG. 2, the electronic data processing system 210 is incommunication with the aforementioned plurality of encoder systems viaone or more arm buses 218. In the embodiment depicted in FIG. 2, eachencoder system generates encoder data and includes: an encoder arm businterface 214, an encoder digital signal processor (DSP) 216, an encoderread head interface 234, and a temperature sensor 212. Other devices,such as strain sensors, may be attached to the arm bus 218.

Also shown in FIG. 2 are probe end electronics 230 that are incommunication with the arm bus 218. The probe end electronics 230include a probe end DSP 228, a temperature sensor 212, a handle/LLPinterface bus 240 that connects with the handle 126 or the LLP 242 viathe quick-connect interface in an embodiment, and a probe interface 226.The quick-connect interface allows access by the handle 126 to the databus, control lines, and power bus used by the LLP 242 and otheraccessories. In an embodiment, the probe end electronics 230 are locatedin the measurement probe housing 102 on the AACMM 100. In an embodiment,the handle 126 may be removed from the quick-connect interface andmeasurement may be performed by the laser line probe (LLP) 242communicating with the probe end electronics 230 of the AACMM 100 viathe handle/LLP interface bus 240. In an embodiment, the electronic dataprocessing system 210 is located in the base 116 of the AACMM 100, theprobe end electronics 230 are located in the measurement probe housing102 of the AACMM 100, and the encoder systems are located in the bearingcartridge groupings 110, 112, 114. The probe interface 226 may connectwith the probe end DSP 228 by any suitable communications protocol,including commercially-available products from Maxim IntegratedProducts, Inc. that embody the 1-wire® communications protocol 236.

FIG. 3 is a block diagram describing detailed features of the electronicdata processing system 210 of the AACMM 100 in accordance with anembodiment. In an embodiment, the electronic data processing system 210is located in the base 116 of the AACMM 100 and includes the baseprocessor board 204, the user interface board 202, a base power board206, a Bluetooth module 232, and a base tilt module 208.

In an embodiment shown in FIG. 3, the base processor board 204 includesthe various functional blocks illustrated therein. For example, a baseprocessor function 302 is utilized to support the collection ofmeasurement data from the AACMM 100 and receives raw arm data (e.g.,encoder system data) via the arm bus 218 and a bus control modulefunction 308. The memory function 304 stores programs and static armconfiguration data. The base processor board 204 also includes anexternal hardware option port function 310 for communicating with anyexternal hardware devices or accessories such as an LLP 242. A real timeclock (RTC) and log 306, a battery pack interface (IF) 316, and adiagnostic port 318 are also included in the functionality in anembodiment of the base processor board 204 depicted in FIG. 3.

The base processor board 204 also manages all the wired and wirelessdata communication with external (host computer) and internal (displayprocessor 202) devices. The base processor board 204 has the capabilityof communicating with an Ethernet network via an Ethernet function 320(e.g., using a clock synchronization standard such as Institute ofElectrical and Electronics Engineers (IEEE) 1588), with a wireless localarea network (WLAN) via a LAN function 322, and with Bluetooth module232 via a parallel to serial communications (PSC) function 314. The baseprocessor board 204 also includes a connection to a universal serial bus(USB) device 312.

The base processor board 204 transmits and collects raw measurement data(e.g., encoder system counts, temperature readings) for processing intomeasurement data without the need for any preprocessing, such asdisclosed in the serial box of the aforementioned '582 patent. The baseprocessor 204 sends the processed data to the display processor 328 onthe user interface board 202 via an RS485 interface (IF) 326. In anembodiment, the base processor 204 also sends the raw measurement datato an external computer.

Turning now to the user interface board 202 in FIG. 3, the angle andpositional data received by the base processor is utilized byapplications executing on the display processor 328 to provide anautonomous metrology system within the AACMM 100. Applications may beexecuted on the display processor 328 to support functions such as, butnot limited to: measurement of features, guidance and training graphics,remote diagnostics, temperature corrections, control of variousoperational features, connection to various networks, and display ofmeasured objects. Along with the display processor 328 and a liquidcrystal display (LCD) 338 (e.g., a touch screen LCD) user interface, theuser interface board 202 includes several interface options including asecure digital (SD) card interface 330, a memory 332, a USB Hostinterface 334, a diagnostic port 336, a camera port 340, an audio/videointerface 342, a dial-up/cell modem 344 and a global positioning system(GPS) port 346.

The electronic data processing system 210 shown in FIG. 3 also includesa base power board 206 with an environmental recorder 362 for recordingenvironmental data. The base power board 206 also provides power to theelectronic data processing system 210 using an AC/DC converter 358 and abattery charger control 360. The base power board 206 communicates withthe base processor board 204 using inter-integrated circuit (I2C) serialsingle ended bus 354 as well as via a DMA serial peripheral interface(DSPI) 356. The base power board 206 is connected to a tilt sensor andradio frequency identification (RFID) module 208 via an input/output(I/O) expansion function 364 implemented in the base power board 206.

Though shown as separate components, in other embodiments all or asubset of the components may be physically located in differentlocations and/or functions combined in different manners than that shownin FIG. 3. For example, in one embodiment, the base processor board 204and the user interface board 202 are combined into one physical board.

FIG. 4 illustrates a process flow for providing an AACMM 100 having aself-contained operating environment in accordance with an embodiment.In an embodiment, the self-contained operating environment uses acommercially available operating system such as, but not limited to,Windows CE. The process shown in FIG. 4 is performed by the electronicdata processing system 210 (also referred to herein as an “electroniccircuit”). At step 402, the AACMM 100 is powered on and a user interfacescreen, such as that shown in FIG. 5, is presented to the operator viathe LCD 338. At step 404, user interface screens, such as those shown inFIGS. 6-7, step the user through a data collection process. At step 406,positional data is calculated at the base processor board 204 of theAACMM 100, and at step 408, the positional data is output to a userinterface application and/or to an application programming interface. Ifthe positional data is output to the user interface application, thenuser interface screens such as those shown in FIGS. 8-9 are displayed.In an embodiment, the application programming interface communicateswith one or more applications executing on the AACMM (e.g., on thedisplay processor 328, on the coldfire processor 302) to perform one ormore of the functions described herein. In an embodiment, theapplication programming interface also interfaces with one or moreapplications executing external to the AACMM (e.g., CAD/CAM software,measurement software). The user interface application is a specializedapplication that interfaces with a user interface device such as thecolor LCD 338 to communicate with the operator.

FIG. 5 is a main menu user interface screen 500 presented to an operatorwhen the AACMM 100 is powered on in accordance with an embodiment. In anembodiment, the main menu user interface screen 500 depicted in FIG. 5is displayed on the LCD 338 on the user interface board 202. In anembodiment, the user interface board 202 includes resident userinterface applications (e.g., stored in the memory 332) and executed bythe display processor 328 for providing a graphical user interface (GUI)with selectable menu options corresponding to the available functionsimplemented by the AACMM 100. The GUI may be implemented as a set ofmenu options, such as those shown in FIG. 5. In FIG. 5, a main menu userinterface screen 500 displayed on the LCD 338 illustrates various menuoptions, such as “Part Setup” (e.g., for specifying part elements suchas planes, lines, circles, and cylinders), “Measure” (e.g., forspecifying features, lengths, angles, and positions), “Files” (e.g., fordefining new parts, loading macros, and transferring data), “Settings”(e.g., for specifying applications, network connections, displaycharacteristics, sound elements, power parameters, and languages), and“Diagnostics”. In an embodiment, an operator makes a selection (e.g., bytouching the screen on the LCD 338) to initiate an action. The main menuuser interface screen 500 includes several icons: a probe tip at thebottom which, when selected, brings up compensation screens used todetermine a location of the probe; a battery in the top right whichindicates how much battery power still remains which is helpful to theoperator when the AACMM 100 is being powered by a battery; and networkicon (“WiFi”) which indicates current network connections. The iconsshown in FIG. 5 are exemplary in nature as other icons to show statusand/or to initiate fast paths to functions may be implemented by otherembodiments.

FIG. 6 is a part setup user interface screen 600 presented to anoperator when the operator selects “Part Setup” on the main menu userinterface screen 500 shown in FIG. 5. In an embodiment, the part setupuser interface screen 600 is used by the operator to select a type ofpart measurement to be performed during data collection. The part setupuser interface screen 600 has an icon shaped like a house which is usedto bring the operator back to the main menu user interface screen 500,and an icon shaped like an arrow to bring the operator back to aprevious user interface screen.

FIG. 7 is a measure user interface screen 700 presented to an operatorfor performing part measurement in accordance with an embodiment. Themeasure user interface screen 700 is displayed when the operator selects“Measure” on the main menu user interface screen 500 shown in FIG. 5.The measure user interface screen 700 options include “Features”,“Lengths”, “Angles”, “Position Display”, and “Review Features”. Examplesof features (that may be selected on a subsequent screen or pop-upwindow) include, but are not limited to circle, cylinder, line, plane,point, and sphere. In an embodiment, once a feature is selected,additional user interface screens step the operator through themeasurement process to collect raw measurement data. For example, if aplane is selected, a picture of a plane is displayed on the LCD 338along with dots indicating which measurement point to take next. Asdescribed previously, the measurement device may be implemented by anynumber of devices including a touch probe where a measurement point istaken by pressing the touch probe to the part being measured. Examplesof lengths include, but are not limited to point-to-point,point-to-plane, plane-to-plane, sphere-to-sphere, and circle-to-circle.Examples of angles include, but are not limited to plane-to-plane,plane-to-cylinder, line-to-line, and apex. In an embodiment, once alength or angle is selected, additional user interface screens step theuser through the measurement process to collect raw measurement data(also referred to herein as position signals).

FIG. 8 is a position display user interface screen 800 presented to anoperator when the operator selects “Position Display” from the measureuser interface screen 700 as shown in FIG. 7. The position data iscalculated by the AACMM 100 based on the raw measurement data. Anoperator may view, via the position display user interface screen 800,position data for each of the selected measurement points. Furtherdetails, such as the raw measurement data (e.g., including angles andtemperatures at each encoder system) may also be output to the operator.

FIG. 9 is a review features user interface screen 900 presented to anoperator when the operator selects “Review Features” from the measureuser interface screen 700 as shown in FIG. 7. Using the review featuresuser interface screen 900, an operator may view position data ofmeasured features. FIG. 9 has a camera icon that is displayed when acamera (e.g., a web camera) is plugged in to the AACMM 100. The webcamera can be used to take a picture of the part being measured. Thepicture can then be saved, measurement points can be overlaid on thepicture, and the picture displayed and used to assist an operator inmeasuring the part.

FIG. 10 is a files user interface screen 1000 presented to an operatorwhen managing files on the AACMM 100 in accordance with an embodiment.The files user interface screen 1000 is displayed on the LCD 338 whenthe operator selects “Files” on the main menu user interface screen 500shown in FIG. 5. In an embodiment, the files user interface screen 1000is used by the operator to manage files on the AACMM 100. When “NewPart” is selected, a file to store measurement data for a new part isopened. When “Transfer Files” is selected, the operator is prompted totransfer parts and/or macro files between two or more of a USB, a SD andan on-board flash memory. When “Load Macro” is selected, a sequence ofmeasurement steps are shown to guide an operator through measuring apart. When “Load Parts” is selected, measurement data already taken fora part is displayed (e.g., for review). When “Save Macro” is selected,the operator is prompted to save a macro, and when “Save Parts” isselected, the operator is prompted to save part data.

FIG. 11 is a settings user interface screen 1100 presented to anoperator when managing settings on the AACMM 100 in accordance with anembodiment. The settings user interface screen 1100 is displayed on theLCD 338 when the operator selects “Settings” on the main menu userinterface screen 500 shown in FIG. 5. An operator may change applicationsettings, connection settings, display settings, sound settings, updatesoftware, and language settings. In an embodiment, application settingsmay be updated by the operator. For example, the minimum point distancemay be adjusted, scanning may be enabled/disabled and/or a current timemay be set. Similarly, network connection settings; display settings(size of font, colors, etc.); sound settings (volume, type of sound,etc.); update software; and language settings (French, English, etc.)may be updated by the operator. The ranges of items that can be changedand the values that they can be changed to are dictated by a currentoperating environment of the AACMM 100. The current operatingenvironment includes software and/or hardware interfaces to each of theelements that may be set. For example, the display interface defines theuniverse of display attributes that may be updated, and includes validvalues of any attributes. Similar interfaces are provided for theconnections, sound, software updates, and language elements. In anembodiment, when an operator selects update software, a list containingthe current (or latest) software version and the version of the softwareon the AACMM 100 is displayed, and the operator may be prompted througha software upgrade process. Alternatively, the list may include all or asubset of supported software versions between the software version onthe AACMM 100 and the latest software version available.

FIG. 12 is a is a flow diagram of a process for verifying that requestedupdates to the AACMM 100 are authorized in accordance with anembodiment. At step 1202, a request to update AACMM 1000 software codeis received from a user. In an embodiment, the update request isinitiated from a sub-menu of the settings user interface screen 1100shown in FIG. 11. For example, the sub-menu may have an “updateapplication software” option that the operator has selected. In anembodiment, the application software includes any logic instructionsbeing used by the self-contained operating environment of the AACMM 100.This includes, but is not limited to, any updates to applicationsoftware, the application programming interface, the user interfaceapplication, the connection interface, the display interface, the soundinterface, the power interface, and the language interface, theoperating system. For example, the update may include allowing thedisplay interface to support a new setting, allowing the languageinterface to support a new language, modifying a user interface screen,etc. In order to keep a controlled environment, block 1204 is performedto verify that the user (e.g., the operator and/or source of the update)has authorization to make the update. The authorization is performed inany manner known in the art. If the user does not have authorization,the request is denied at block 1208. If the user does haveauthorization, the update to the AACMM 100 is performed at block 1206.

FIG. 13 is a diagnostics user interface screen 1300 presented to anoperator when performing diagnostics in accordance with an embodiment.FIG. 14 is a calibration user interface screen 1400 presented to anoperator when performing calibration in accordance with an embodiment.

The user interface screens shown and described herein are examples ofhigh level screens that are used by an exemplary embodiment. Otherscreens (different content, additional content, presented in a differentorder) including additional sub-screens may be implemented by exemplaryembodiments. In addition, the terms screen and sub-screen are intendedto cover any method of providing the data such as, but not limited topop-up menus and selection lists.

In an alternate embodiment, the user interface includes audio and/orhaptic communication with the operator.

Technical effects and benefits include having a self-contained portableAACMM 100 that does not require a connection to an external computer forcalculating position data from the raw measurement data collected by theAACMM 100. In addition, an external computer is not required forproviding a user interface application to allow the operator to giveinstructions to the AACMM 100. A benefit is that a single device, thestand-alone portable AACMM 100 is all that is required to collect andreport on measurement data. An additional benefit is that the AACMM 100is only required to support one operating system/operating system level(i.e., the one that is being used by the self-contained operatingenvironment). In addition, troubleshooting is easier because the entireenvironment is known and there is no variation in operation due todifferent operating environments (e.g., different operating systems,software, etc. installed on the external computers).

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method, or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablemedium would include the following: an electrical connection having oneor more wires, a portable computer diskette, a hard disk, a randomaccess memory (RAM), a read-only memory (ROM), an erasable programmableread-only memory (EPROM or Flash memory), an optical fiber, a portablecompact disc read-only memory (CD-ROM), an optical storage device, amagnetic storage device, or any suitable combination of the foregoing.In the context of this document, a computer readable storage medium maybe any tangible medium that may contain, or store a program for use byor in connection with an instruction execution system, apparatus, ordevice.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++, C# or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, may be implemented bycomputer program instructions.

These computer program instructions may be provided to a processor of ageneral purpose computer, special purpose computer, or otherprogrammable data processing apparatus to produce a machine, such thatthe instructions, which execute via the processor of the computer orother programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer program instructions may also bestored in a computer readable medium that may direct a computer, otherprogrammable data processing apparatus, or other devices to function ina particular manner, such that the instructions stored in the computerreadable medium produce an article of manufacture including instructionswhich implement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the Figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, may be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

While the invention has been described with reference to exampleembodiments, it will be understood by those skilled in the art thatvarious changes may be made and equivalents may be substituted forelements thereof without departing from the scope of the invention. Inaddition, many modifications may be made to adapt a particular situationor material to the teachings of the invention without departing from theessential scope thereof. Therefore, it is intended that the inventionnot be limited to the particular embodiment disclosed as the best modecontemplated for carrying out this invention, but that the inventionwill include all embodiments falling within the scope of the appendedclaims. Moreover, the use of the terms first, second, etc. do not denoteany order or importance, but rather the terms first, second, etc. areused to distinguish one element from another. Furthermore, the use ofthe terms a, an, etc. do not denote a limitation of quantity, but ratherdenote the presence of at least one of the referenced item.

1. A portable articulated arm coordinate measurement machine (AACMM),comprising: a manually positionable articulated arm portion havingopposed first and second ends, the arm portion including a plurality ofconnected arm segments, each of the arm segments including at least oneposition transducer for producing position signals; a measurement deviceattached to the first end of the AACMM; and an electronic circuit havinga self-contained operating environment for the AACMM, the self-containedoperating environment including a user interface application, anapplication programming interface, and logic configured for performingdata collection including receiving position signals from thetransducers; calculating data corresponding to a position of themeasurement device, the calculating responsive to the position signals;and outputting the data to at least one of the user interfaceapplication and the application programming interface.
 2. The system ofclaim 1, wherein the logic is further configured for facilitating acalibration procedure for the AACMM.
 3. The system of claim 1, whereinthe performing is initiated in response to the AACMM being powered on.4. The system of claim 1, wherein the portable AACMM further comprises adisplay device and the user interface application outputs the data tothe display device.
 5. The system of claim 4, wherein the display devicedisplays information to guide an operator through performing the datacollection.
 6. The system of claim 4, wherein the display devicedisplays a picture of a part being measured by the portable AACMM. 7.The system of claim 1, wherein updates to the self-contained operatingenvironment require an authorization.
 8. The system of claim 1, whereinthe self-contained operating environment operates in kiosk mode.
 9. Thesystem of claim 1, wherein the self-contained operating environmentfurther includes at least one of a network interface, a displayinterface, a sound interface, and a power interface.
 10. The system ofclaim 1, wherein the user interface application supports communicatingwith an operator in least two different languages.
 11. A method ofimplementing a portable articulated arm coordinate measuring machine(AACMM), the method comprising: providing a self-contained operatingenvironment for the portable AACMM, the portable AACMM comprised of amanually positionable articulated arm portion having opposed first andsecond ends, the arm portion including a plurality of connected armsegments, each arm segment including at least one position transducerfor producing position signals, a measurement device attached to thefirst end of the portable AACMM, and an electronic circuit having theself-contained operating environment, the electronic circuit including auser interface application, an application programming interface, andlogic configured for performing data collection including receivingposition signals from the transducers; calculating data corresponding toa position of the measurement device, the calculating responsive to theposition signals; and outputting the data to at least one of the userinterface application and the application programming interface.
 12. Themethod of claim 11, wherein the logic is further configured forfacilitating a calibration procedure for the AACMM.
 13. The method ofclaim 11, wherein the performing is initiated in response to the AACMMbeing powered on.
 14. The method of claim 11, wherein the portable AACMMfurther comprises a display device and the user interface applicationoutputs the data to the display device.
 15. The method of claim 14,wherein the display device displays information to guide an operatorthrough performing the data collection.
 16. The method of claim 14,wherein the display device displays a picture of a part being measuredby the portable AACMM.
 17. The method of claim 11, wherein updates tothe self-contained operating environment require an authorization. 18.The method of claim 11, wherein the self-contained operating environmentoperates in kiosk mode.
 19. The method of claim 11, wherein theself-contained operating environment further includes at least one of anetwork interface, a display interface, a sound interface, and a powerinterface.
 20. The method of claim 11, wherein the user interfaceapplication supports communicating with an operator in least twodifferent languages.
 21. A computer program product for implementing aportable articulated arm coordinate measuring machine (AACMM), thecomputer program product comprising a storage medium havingcomputer-readable program code embodied thereon, which when executed byan electronic circuit on the AACMM causes the computer to implement amethod, the method including: providing a self-contained operatingenvironment for the portable AACMM, the portable AACMM comprised of amanually positionable articulated arm portion having opposed first andsecond ends, the arm portion including a plurality of connected armsegments, each arm segment including at least one position transducerfor producing position signals, a measurement device attached to thefirst end of the portable AACMM, and the electronic circuit, theelectronic circuit having the self-contained operating environment andincluding a user interface application, an application programminginterface, and logic configured for performing data collection includingreceiving position signals from the transducers; calculating datacorresponding to a position of the measurement device, the calculatingresponsive to the position signals; and outputting the data to at leastone of the user interface application and the application programminginterface.
 22. The computer program product of claim 21, wherein thelogic is further configured for facilitating a calibration procedure forthe AACMM.
 23. The computer program product of 21, wherein theperforming is initiated in response to the AACMM being powered on. 24.The computer program product of claim 21, wherein updates to theself-contained operating environment require an authorization.
 25. Thecomputer program product of claim 21, wherein the self-containedoperating environment operates in kiosk mode.
 26. The computer programproduct of claim 21, wherein the self-contained operating environmentfurther includes at least one of a network interface, a displayinterface, a sound interface, and a power interface.